package com.dms.service;

import com.dms.pojo.Class;
import com.dms.pojo.College;
import com.dms.pojo.Major;
import com.dms.pojo.Student;

import java.util.List;

/**
 * @className: CollegeManageService
 * @package: com.dms.service
 * @description 院部管理模块业务逻辑层接口
 * @author: sk
 */
public interface CollegeManageService {

    // 模糊分页查询 院部列表集合
    List<College> getCollegeListLimit(String query, int pageNum, int pageSize);

    //获取院部total
    int getCollegeTotal(String query);

    //检查院部名是否已经存在
    boolean checkCollegeName(String collegeName);

    //添加院部
    int addCollege(College college);

    //获取院部信息
    College getCollegeInfo(String collegeName);

    //修改院部信息
    int editCollege(College college);

    //删除院部
    int deleteCollege(String collegeName);

    /*************************************************************************************/

    //获取所有学院集合
    List<College> getCollegeList();

    //获取专业列表集合
    List<Major> getMajorListLimit(String select, String query, int pageNum, int pageSize);

    //获取专业列表total
    int getMajorTotal(String select, String query);

    //专业名查重
    boolean checkMajorIsExist(String majorName);

    //添加专业信息
    int addMajor(Major major);

    //获取专业信息
    Major getMajorInfo(String majorName);

    //修改专业信息
    int editMajor(Major major);

    //删除专业信息
    int deleteMajor(String majorName);

    /***************************************************************************************************************/
    //获取班级列表
    List<Class> getClassListLimit(Integer select, String query, int pageNum, int pageSize);

    //获取班级列表total
    int getClassTotal(Integer select, String query);

    //班级查重
    boolean checkClass(int majorId, String className);

    //获取班级信息
    Class getClassInfo(int majorId, String className);

    //添加班级
    int addClass(Class aClass);

    //编辑班级信息
    int editClass(Class aClass);

    //删除班级信息
    int deleteClass(String className);

    /*********************************************************************************************/

    //模糊查询获取学生信息
    List<Student> getStudentListLimit(Integer majorId, Integer buildingId, String stuNumber, String stuName, Integer classId,
                                      int pageNum, int pageSize);

    //获取total
    int getStudentTotal(Integer majorId, Integer buildingId, String stuNumber, String stuName, Integer classId);

    //获取学生信息
    Student getStudentByUserName(String userName);

    //添加学生
    int addStudent(Student student);

    //编辑学生
    int editStudent(Student student);

    //删学生
    int deleteStudent(String userName, Integer dormitoryId, String stuName);

}
